<?php

/*
  ============================================================
  =    ING. Juan M. Carrizalez 0412-7449583 AGROPATRIA C.A   =
  ============================================================
  =         SISTEMA FORMATOS DESPACHOS CAKEPHP 1.2           =
  ============================================================
 */

class AgenciasController extends AppController {

    var $name = 'Agencias';
    var $uses = array('Bitacora', 'Mensaje', 'Usuario', 'Agencia','Estado');
    var $helpers = array('Html', 'Form', 'Ajax', 'Javascript', 'Cargar');
    var $layout = "ajax";
    var $paginate = array('limit' => 15);

     function beforeFilter() {
        $this->validar();
    }

    function listado($donde = null, $busq = null) {

        if ($busq != null)
            $this->buscador($donde, $busq);
        else
            $this->ftodo('Agencia');
        $this->set('donde', $donde);
        $this->set('busq', $busq);
    }

    function pdf_todo() {
        $this->ftodo('Agencia');
    }

    function modificar($id = null, $donde = null, $busq = null) {
        $this->set('donde', $donde);
        $this->set('busq', $busq);
        $this->funo('Agencia', $id);
        $this->set('estado', $this->estados());
        $this->script($this->div('v'), $this->div('l')); //(1,0)
    }

    function nuevo($donde = null, $busq = null) {
        $this->set('donde', $donde);
        $this->set('busq', $busq);
        $this->set('estado', $this->estados());
        $this->script($this->div('v'), $this->div('l')); //(1,0)
    }

    function activar($id, $donde = null, $busq = null) {
        $valor = $this->consulta($id, 'Agencia', 'estado');
        $this->actualizar_estado($id, 'Agencia', $valor);
        $this->set('donde', $donde);
        $this->set('busq', $busq);
        if ($busq != null)
            $this->buscador($donde, $busq);
        else {
            $this->ftodo('Agencia');
            $this->listado();
            $this->render('listado');
        }
    }

    function existe($a, $b, $i = null) {
        $valor = $this->Agencia->find('first', array('conditions' => array("Agencia.nombre" => "$a", "Estado.id" => "$b")));
        if ($valor['Agencia']['id'] == $i)
            return false;
        else if ($valor['Agencia']['nombre'] != '')
            return true;
        else
            return false;
    }

 function guardar() {
        $d = $this->data;
        $cont = $this->name;
        $funt = 'guardar';
        $modelo = 'Agencia';

        if (empty($d['nombre']))
            $this->mensaje_error($cont, $funt, 'nombre');
        else if (empty($d['estado']))
            $this->mensaje_error($cont, $funt, 'estado');
        else if (!isset($d['id']) and $this->existe($d['nombre'], $d['estado']))
            $this->set('Error', $d['nombre'] . " Ya se Encuentra Registrado en " . $this->consulta($d['estado'], "Estado", "nombre"));
        else if (isset($d['id']) and $this->existe($d['nombre'], $d['estado'], $d['id']))
            $this->set('Error', $d['nombre'] . " Ya se Encuentra Registrado en " . $this->consulta($d['estado'], "Estado", "nombre"));
        else {

            if (!isset($d['id'])) {
                $vn = 0;
                $vald = "Nuevo";
                $med = "Nuev $modelo Registrada exitosamente!!!";
            } else {
                $vn = 1;
                $vald = "Modificar";
                $med = "$modelo Modificada exitosamente!!!";
            }
            $this->data = null;
            $this->$modelo->query('BEGIN  WORK');
            if (isset($d['id']))
                $this->data["$modelo"]['id'] = $d['id'];
            $this->data["$modelo"]['nombre'] = $this->mayuscula($d['nombre']);
            $this->data["$modelo"]['estado_id'] = $d['estado'];
            $this->data["$modelo"]['estado'] = 1;

            if ($this->$modelo->save($this->data)) {

                $id_ = $this->$modelo->id;

                if ($this->auditoria($id_, $modelo, $vald)) {
                    $this->$modelo->query('COMMIT');
                    $this->set('Exito', $med);
                } else {
                    $this->$modelo->query('ROLLBACK');
                    $this->set('Error', 'Error Guardando bitacora');
                }
            } else {
                $this->$modelo->query('ROLLBACK');
                $this->set('Error', "Datos de la $modelo no fueron guardados");
            }
            $this->script($this->div('l'), $this->div('v')); //(1,0)

            if (empty($d['donde']))
                $this->set('donde', null);
            else
                $this->set('donde', $d['donde']);

            if (empty($d['busq']))
                $this->set('busq', null);
            else
                $this->set('busq', $d['busq']);


            if ($d['busq'] != null)
                $this->buscador($d['donde'], $d['busq']);
            else {
                $this->ftodo($modelo);
                $this->listado();
                $this->render('listado');
            }
        }
    }

}

?>